import photoImg from '../assets/img/info-photo.png'
import IDZimg from '../assets/img/ID_positive.png'
import IDFimg from '../assets/img/ID_opposite.png'
import FACEimg from '../assets/img/face.png'

// 用户基本不变的资料
const user = {
  info: {
    // 用户ID
    user_id: null,
    //
    guid: null,
    // 令牌
    token: null,
    // 用户昵称
    nickName: null,
    // 用户头像
    avatar: null,
    // 信用额度
    quota: null,
    // 待还金额
    arrears: null,
    // 评估时间
    evaluationTime: null,
    // 是否绑定手机号
    isBindPhone: 0,
    // 是否绑定了商家
    bind_seller: 0,
    // 资料填写到哪一步了
    profileStep: 1,
    // 是否先进入了资料进度中心,在这里完成所有资料的获取，所以必须先进入这里
    isGetAllProfile: false,
    // 从服务器获取的资料
    profile: {
      // 第一步基本信息
      base: {
        // 姓名
        real_name: null,
        // 身份证
        id_card_no: null,
        // 工资
        salary: null,
        // 教育程度id
        education: null,
        // 教育程度文本
        education_name: null,
        // 个人住址 省份id
        pid: null,
        // 个人住址 省份文本
        pid_name: null,
        // 个人住址 城市id
        cid: null,
        // 个人住址 城市文本
        cid_name: null,
        // 个人住址 区域id
        rid: null,
        // 个人住址 区域文本
        rid_name: null,
        // 户口类型id
        residence: null,
        // 户口类型文本
        residence_name: null,
        // 婚姻状况id
        marriage: null,
        // 婚姻状况文本
        marriage_name: null,
        // 公司
        company: '',
        // 职业
        job: '',
        // 公司电话
        company_tel: '',
        // 工作时间
        job_time: '',
        // 公司地址 省份id
        cpid: '',
        // 公司地址 省份文本
        cpid_name: null,
        // 公司地址 城市id
        ccid: '',
        // 公司地址 城市文本
        ccid_name: null,
        // 公司地址 区域id
        crid: null,
        // 公司地址 区域文本
        crid_name: '',
        // 公司详细地址
        caddress: '',
        // 暂住证 图片
        residence_permit: photoImg,
        // 审核状态 false 为可以更新 true 为不能更新
        checkStatus: false,
        // 信用卡和医保卡
        no_job_card: photoImg,
        // 是否用工作
        has_job: 0
      },
      // 第二步 联系人，姓名，电话
      contact: {
        info: [
          {
            name: null,
            phone: null
          },
          {
            name: null,
            phone: null
          },
          {
            name: null,
            phone: null
          },
          {
            name: null,
            phone: null
          }
        ],
        // 审核状态 false 为可以更新 true 为不能更新
        checkStatus: false
      },
      // 第三步 身份证照片 正面，反面，手持身份证
      IDCard: {
        id_card_front: IDZimg,
        id_card_back: IDFimg,
        id_hand: FACEimg,
        // 审核状态 false 为可以更新 true 为不能更新
        checkStatus: false
      },
      // 第四步 附件图片 最多三张 可省略
      attach: {
        info: [photoImg],
        // 审核状态 false 为可以更新 true 为不能更新
        checkStatus: false
      },
      // 第五步 芝麻分验证
      zm: false
    },
    // 担保人资料填写到哪一步了
    warrantorStep: 1,
    // 是否先进入了担保人资料进度中心，在这里完成所有资料的获取，所以必须先进入这里
    isGetWarrantorAllProfile: false,
    // 从服务器获取的担保人资料资料
    warrantor: {
      // 第一步基本信息
      base: {
        // 姓名
        real_name: null,
        // 身份证
        id_card_no: null,
        // 手机
        mobile: null,
        // 验证码
        code: null,
        // 工资
        salary: null,
        // 教育程度id
        education: null,
        // 教育程度文本
        education_name: null,
        // 个人住址 省份id
        pid: null,
        // 个人住址 省份文本
        pid_name: null,
        // 个人住址 城市id
        cid: null,
        // 个人住址 城市文本
        cid_name: null,
        // 个人住址 区域id
        rid: null,
        // 个人住址 区域文本
        rid_name: null,
        // 地址文本
        ownAddress: null,
        // 个人详细地址
        address: null,
        // 户口类型id
        residence: null,
        // 户口类型文本
        residence_name: null,
        // 婚姻状况id
        marriage: null,
        // 婚姻状况文本
        marriage_name: null,
        // 公司
        company: null,
        // 职业
        job: null,
        // 公司电话
        company_tel: null,
        // 工作时间
        job_time: null,
        // 公司地址 省份id
        cpid: null,
        // 公司地址 省份文本
        cpid_name: null,
        // 公司地址 城市id
        ccid: null,
        // 公司地址 城市文本
        ccid_name: null,
        // 公司地址 区域id
        crid: null,
        // 公司地址 区域文本
        crid_name: null,
        // 公司详细地址
        caddress: null,
        // 暂住证 图片
        residence_permit: photoImg,
        // 审核状态 false 为可以更新 true 为不能更新
        checkStatus: false,
        // 信用卡和医保卡
        no_job_card: photoImg,
        // 是否用工作
        has_job: 0
      },
      // 第二步 联系人，姓名，电话
      contact: {
        info: [
          {
            name: null,
            phone: null
          },
          {
            name: null,
            phone: null
          },
          {
            name: null,
            phone: null
          },
          {
            name: null,
            phone: null
          }
        ],
        // 审核状态 false 为可以更新 true 为不能更新
        checkStatus: false
      },
      // 第三步 身份证照片 正面，反面，手持身份证
      IDCard: {
        id_card_front: IDZimg,
        id_card_back: IDFimg,
        id_hand: FACEimg,
        // 审核状态 false 为可以更新 true 为不能更新
        checkStatus: false
      },
      // 第四步 附件图片 最多三张 可省略
      attach: {
        info: [photoImg],
        // 审核状态 false 为可以更新 true 为不能更新
        checkStatus: false
      }
    },
    // 提前还款的列表信息
    preRepay: {
      total: 0,
      lists: []
    },
    // 缓存丰期信息
    billDetail: {
      repay_money: null,
      repay_num: 0,
      result: []
    }
  },
  methods: {
    // 强制去往商家
    bindseller (state, num) {
      state.bind_seller = num
    },
    // 用户登录时候设置资料
    loginIn (state, obj) {
      state.user_id = obj.user_id
      state.guid = obj.guid
      state.token = obj.token
      state.nickName = obj.nickname
      state.avatar = obj.avatar
      state.isBindPhone = obj.is_bind
      state.bind_seller = parseInt(obj.bind_seller)
    },
    // 个人中心的时候设置资料
    userInfo (state, obj) {
      state.quota = obj.quota
      state.arrears = obj.arrears
      state.evaluationTime = obj.evaluationTime
    },
    // 绑定手机号
    bindPhone (state) {
      state.isBindPhone = true
    },
    // 个人资料步骤设置
    profileStepSet (state, num) {
      state.profileStep = num
    },
    // 可以进入填写资料界面
    setAllProfileGetStatus (state) {
      state.isGetAllProfile = true
    },
    // 从服务器获取基本资料
    getCacheBaseInfo (state, obj) {
      state.profile = {...state.profile, base: obj}
      if (!obj.no_job_card) {
        state.profile.base.no_job_card = photoImg
      }
      if (!obj.residence_permit) {
        state.profile.base.residence_permit = photoImg
      }
    },
    // 缓存本地填写的基本资料
    setCacheBaseInfo (state, obj) {
      for (let i in obj) {
        state.profile.base[i] = obj[i]
      }
    },
    // 从服务器获取联系人
    getCacheContact (state, obj) {
      state.profile = {...state.profile, contact: obj}
    },
    // 不需要缓存本地填写的联系人，因为视图不会更新
    // 从服务器获取身份证照片
    getCacheIDcard (state, obj) {
      state.profile = {...state.profile, IDCard: obj}
    },
    // 缓存本地上传的资料
    setCacheIDcard (state, obj) {
      for (let i in obj) {
        state.profile.IDCard[i] = obj[i]
      }
    },
    // 从服务器获取附件资料
    getCacheAttach (state, obj) {
      state.profile = {...state.profile, attach: obj}
    },
    // 缓存本地上传的附件资料
    setCacheAttach (state, obj) {
      state.profile.attach.info[obj.index] = obj.value
    },
    addCacheAttach (state, value) {
      state.profile.attach.info.push(value)
    },
    // 删除本地的附件资料
    delCacheAttach (state, index) {
      state.profile.attach.info.splice(index, 1)
    },
    // 验证芝麻分成功
    zmQuotaChecked (state) {
      state.profile.zm = true
    },
    // 验证芝麻分成功后设置额度
    setZMQuota (state, value) {
      state.quota = +value
    },
    // 以下为担保人信息
    // 步骤设置
    warrantorStepSet (state, num) {
      state.warrantorStep = num
    },
    // 可以进入填写资料界面
    setAllWarrantorGetStatus (state) {
      state.isGetWarrantorAllProfile = true
    },
    // 从服务器获取基本资料
    getCacheWarrantorBase (state, obj) {
      state.warrantor = {...state.warrantor, base: obj}
    },
    // 缓存本地填写的基本资料
    setCacheWarrantorBase (state, obj) {
      for (let i in obj) {
        state.warrantor.base[i] = obj[i]
      }
    },
    // 从服务器获取联系人
    getCacheWarrantorContact (state, obj) {
      state.warrantor = {...state.warrantor, contact: obj}
    },
    // 不需要缓存本地填写的联系人，因为视图不会更新
    // 从服务器获取身份证照片
    getCacheWarrantorIDcard (state, obj) {
      state.warrantor = {...state.warrantor, IDCard: obj}
    },
    // 缓存本地上传的资料
    setCacheWarrantorIDcard (state, obj) {
      for (let i in obj) {
        state.warrantor.IDCard[i] = obj[i]
      }
    },
    // 从服务器获取附件资料
    getCacheWarrantorAttach (state, obj) {
      state.warrantor = {...state.warrantor, attach: obj}
    },
    // 缓存本地上传的附件资料
    setCacheWarrantorAttach (state, obj) {
      state.warrantor.attach.info[obj.index] = obj.value
    },
    addCacheWarrantorAttach (state, value) {
      state.warrantor.attach.info.push(value)
    },
    // 删除本地的附件资料
    delCacheWarrantorAttach (state, index) {
      state.warrantor.attach.info.splice(index, 1)
    },
    // 缓存提前还款列表
    getpreRepayList (state, obj) {
      state.preRepay.total = obj.total
      state.preRepay.lists = obj.lists
    },
    // 缓存丰期信息
    getBillDetail (state, obj) {
      state.billDetail = obj
      if (obj.repay_num === 0) {
        state.billDetail.result = []
      }
    }
  }
}

export default user
